Crate spin_sleep_util
source ·Expand description
Utils using spin_sleep.
Example: Frame limiter
Interval
may be used to limit a loop to a max fps by calling Interval::tick
at the start or end of each loop.
// Create an interval to tick 144 times each second
let mut interval = spin_sleep_util::interval(Duration::from_secs(1) / 144);
loop {
compute_something(); // do loop work
// tick: sleep using a SpinSleeper until next tick.
// The default `Skip` missed ticke behaviour is appropriate for a frame limiter
interval.tick();
}
Structs
- Interval returned by
interval
andinterval_at
. - Helper for regularly reporting a rate per second, like fps.
Enums
- Defines the behavior of an
Interval
when it misses a tick.
Functions
- Creates new
Interval
that spin-sleeps with interval ofperiod
. The first tick returns immediately. The defaultMissedTickBehavior
isSkip
. - Creates new
Interval
that spin-sleeps with interval ofperiod
with the first tick returning atstart
. The defaultMissedTickBehavior
isSkip
.